package org.one.stone.soup.grfxML;

import java.awt.Graphics;

import org.one.stone.soup.mjdb.data.field.Point2DField;
import org.one.stone.soup.xml.XmlElement;
  /*
 * Copyright 2000-2001 Wet-Wired.com Ltd.,
 * Portsmouth England
 * All rights reserved.
 */

/**
	* The abstract Geometry class defines the common data and methods
	* of all Geometry elements.
	* @author Nik Cross
*/
public abstract class Geometry{
	private String id = null;
	boolean isBackground = false;

	protected GrfxMLEngine engine;

	public Geometry( GrfxMLEngine engine )
	{
		this.engine = engine;
	}

public abstract boolean contains(Point2DField point,Point2DField pointView);
/**
 *
 * @param grfx java.awt.Graphics
 */
abstract void draw(Graphics grfx);
/**
 *
 * @return java.lang.String
 */
public String getId() {
	return id;
}
/**
 *
 * @param newId java.lang.String
 */
protected void setId(String newId) {
	id = newId;
}

public abstract boolean hasChanged();
public abstract void resetChanged();

/**
 *
 * @return java.lang.String
 */
public abstract XmlElement toXML();
}
